let id = 0
class Dep{
    constructor() {
        this.id = id++
        this.subs = [] // 存放当前这个属性对应的多个watcher
    }
    depend(){
        // Dep.target 就是当前的 watcher
        // 让watcher记住当前的dep
        Dep.target.addDep(this)
    }
    // 当在watcher函数中添加好dep后会调用dep的addSubs方法，在dep中再保存一下watcher
    addSubs(watcher){
        this.subs.push(watcher)
    }
    // 更新属性时更新这个属性对应的dep上的notify方法，会遍历这个dep对应的所有的watcher进行更新视图
    notify(){
        this.subs.forEach(watcher => watcher.update())
    }
}
export default Dep